package com.hsd.znsh.service;

import com.hsd.znsh.entity.Host;
import com.hsd.znsh.entity.Monitor;
import com.hsd.znsh.entity.User;
import com.hsd.znsh.pojo.output.MonitorVO;
import com.hsd.znsh.pojo.query.MonitorQuery;
import org.springframework.data.domain.Pageable;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;


public interface MonitorService extends BaseService {

    List<MonitorVO> getMonitorList(Pageable pageable, MonitorQuery monitorQuery,Integer userId);

    long getMonitorListTotalPages(MonitorQuery monitorQuery,Integer userId);

    MonitorVO getMonitorInfo(Integer id);

    Monitor addMonitor(Monitor monitor);

    Monitor updateMonitor(Monitor monitor);

    void deleteMonitor(Integer id);

    List<Monitor> getQjMonitorList();

    List<Monitor> getUserQjMonitorList(Integer userId);

    List<Monitor> getUjMonitorList();

    List<Monitor> getUserUjMonitorList(Integer userId);

    Map generalUserAddress(Integer id,HttpServletRequest request);

    Map vipOrManagerAddress(Integer id);

    List<Monitor> getMonitorListByHostSn(String hostSn);

    List<MonitorVO> getMonitorListByAppUser(User user);

    Monitor assignMonitor(String monitorSn,String alias,String hostSn);

    Monitor unbindMonitor(String monitorSn);

    long countMonitorByHostSn(String hostSn);

}
